package com.csust.automaticteach.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.csust.automaticteach.model.dto.learnchat.LearnChatQueryRequest;
import com.csust.automaticteach.model.entity.LearnChat;
import com.baomidou.mybatisplus.extension.service.IService;
import com.csust.automaticteach.model.entity.User;
import com.csust.automaticteach.model.enums.ChatSchemaEnum;
import reactor.core.publisher.Flux;

/**
* @author 钰玟
* @description 针对表【t_learn_chat(学习聊天表)】的数据库操作Service
* @createDate 2025-09-27 13:36:34
*/
public interface LearnChatService extends IService<LearnChat> {
    /**
     *  聊天生成代码
     * @param learnChatId 聊天ID
     * @param message 用户输入
     * @param model 模型
     * @param  promptId 提示ID
     * @param loginUser 登录用户
     * @param chatSchema 聊天模式
     * @return Flux<String>
     */

    Flux<String> chatToLearn(Long learnChatId, String message, String model, String promptId, User loginUser, ChatSchemaEnum chatSchema);
    /**
     *  获取查询包装类
     * @param learnChatQueryRequest 查询请求
     * @return 查询包装类
     */
    QueryWrapper<LearnChat> getQueryWrapper(LearnChatQueryRequest learnChatQueryRequest);
}
